package indi.gao;

import javax.xml.transform.Source;

/**
 * <p>Description:</p>
 * <p>Copyright: Copyright (c)2019$</p>
 * <p>Company: Tope</p>
 * <P>Created Date :2019$-09$-04$</P>
 * <P>@version 1.0</P>
 */
public class MathTest {
    public static void main(String[] args) {
        /**
         *float 符号位 1 指数位8 位数 23 （4个字节）
         * double 符号位 1 指数位 11尾数 52 （8 个字节）
         */

        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.toBinaryString(Long.MAX_VALUE) + "length:" + Long.toBinaryString(Long.MAX_VALUE).length());
        System.out.println(Long.MAX_VALUE);
        System.out.println(Long.toBinaryString(Long.MAX_VALUE) + Long.toBinaryString(Long.MAX_VALUE).length());

        /**
         * 抑或 二进制 后面对齐  数字相同为0 数字不同为 1
         */
        int yihuo1 = 10;
        int yihuo2 = 20;
        System.out.println(yihuo1 ^ yihuo2);
        /**
         * 左移右移操作符
         */
        Double charTest = 122.00D;
        int intTest = 12;
        int intTest2 = -5;
        System.out.println(charTest.intValue());
        //有符号右移 >> （保留前面的符号位）（相当于除以2）(正数补 0 负数 补 1 )
        /**
         * 首先，我们看一下-5的形式：
         源码：1000 0101
         反码：1111 1010
         补码：1111 1011  (补码取反+1 得到原码)

         左移一位之后：
         补码：1111 1101
         反码：1111 1100
         原码：1000 0011

         那么现在看一下，结果-3已经出现了。

         无符号右移(左边补 0 ) >>>
         */
        System.out.println((intTest >> 1) + " " + (intTest2 >> 1) + " " + (-5 / 2));
        System.out.println(8 >>> 2);
        //越界不会出现异常
        System.out.println(Integer.MAX_VALUE * 4);

        System.out.println(new Double(Math.pow(2, 3) * 20));
        // 库
        System.out.println(319164 / 64 % 64);
        // 表
        System.out.println(135841618%64);

        System.out.println("werer"+null);
    }
}
